package com.company.gjtx.common.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author lmq
 * json java 日期转换
 */
public class DateProcessorUtil {
	
	public static String FORMAT_ONE = "yyyy-MM-dd"; 
	
	public static String FORMAT_TWO = "yyyy-MM-dd hh:mm:ss"; 
	
	public static String FORMAT_THREE = "yyyy-MM-dd HH:mm:ss"; 
	
	public static SimpleDateFormat DATE_FORMAT_ONE = new SimpleDateFormat(FORMAT_ONE);
	
	public static SimpleDateFormat DATE_FORMAT_TWO = new SimpleDateFormat(FORMAT_TWO);
	
	public static SimpleDateFormat DATE_FORMAT_THREE = new SimpleDateFormat(FORMAT_THREE);

	/**
	 * 日期转换 为字符串        “年-月-日”
	 * @param value
	 * @return
	 */
	public static String formatDateObject (Object value){
		try{
			 if (value instanceof Date) {				
				return DATE_FORMAT_ONE.format(value);
			}
           return value == null ?"":value.toString();				
	
		}catch (Exception e) {
			return "";
		}
	}
	
	/**
	 * 日期转换 为字符串    “年-月-日 时:分:秒”  12小时制
	 * @param value
	 * @return
	 */
	public static String formatDateObject2 (Object value){
		try{
			 if (value instanceof Date) {				
				return DATE_FORMAT_TWO.format(value);
			}
           return value == null ?"":value.toString();				
	
		}catch (Exception e) {
			return "";
		}
	}
	
	/**
	 * 日期转换字符串 为 “年-月-日 时:分:秒”  24小时制
	 * @param value
	 * @return
	 */
	public static String formatDateObject3 (Object value){
		try{
			 if (value instanceof Date) {				
				return DATE_FORMAT_THREE.format(value);
			}
           return value == null ?"":value.toString();				
	
		}catch (Exception e) {
			return "";
		}
	}
	
	/**
	 * 字符串格式化为日期
	 * @param value  “年-月-日”
	 * @return
	 */
	public static Date parseDate (String value){
		try {
			return DateProcessorUtil.DATE_FORMAT_ONE.parse(value);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 字符串格式化为日期
	 * @param value   “年-月-日 时:分:秒”  12小时制
	 * @return
	 */
	public static Date parseDate2 (String value){
		try {
			return DateProcessorUtil.DATE_FORMAT_TWO.parse(value);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 字符串格式化为日期
	 * @param value “年-月-日 时:分:秒”  24小时制
	 * @return
	 */
	public static Date parseDate3 (String value){
		try {
			return DateProcessorUtil.DATE_FORMAT_THREE.parse(value);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 获取所有的日期格式化
	 * @return
	 */
	public static String[] getDateFormats() {
		String[] formats = {FORMAT_ONE,FORMAT_TWO,FORMAT_THREE};
		return formats;
	}
	
}
